package com.example.swordjava;


import java.util.ArrayList;
import java.util.HashSet;

public class Test39 {

    public static void main(String[] args) {

        int[][] a = {{1, 2, 3, 4},
                {5, 6, 7, 8},
                {9, 10, 11, 12},
                {13, 14, 15, 16}};

        System.out.println(a[0][1]);

    }

    public class TreeNode {
        int val = 0;
        TreeNode left = null;
        TreeNode right = null;

        public TreeNode(int val) {
            this.val = val;

        }
    }

    /**
     * 数组中出现次数超过一半的数字
     * 给一个长度为 n 的数组，数组中有一个数字出现的次数超过数组长度的一半，请找出这个数字。
     * 例如输入一个长度为9的数组[1,2,3,2,2,2,5,4,2]。由于数字2在数组中出现了5次，超过数组长度的一半，因此输出2。
     */
    public int MoreThanHalfNum_Solution(int[] numbers) {
        // write code here
        int times = 0;
        int num = numbers[0];
        for (int i = 0; i < numbers.length; i++) {
            if (times == 0) {
                num = numbers[i];
                times = 1;
            } else {
                if (numbers[i] == num) {
                    times++;
                } else {
                    times--;
                }
            }
        }

        int count = 0;
        for (int i = 0; i < numbers.length; i++) {
            if (num == numbers[i]) {
                count++;
            }
        }
        if (count > numbers.length / 2) {
            return num;
        }
        return 0;
    }

}














